Method and apparatus for locating devices

ABSTRACT

A method of obtaining positional information about individual wireless devices a 1 -a 16 , r 1 -r 125  within a wireless ad-hoc network including a plurality of position determining devices r 1 -r 125  which include means for estimating the distance between themselves and other similar devices which are within range. The method includes the steps of: calculating the hypothetical distance between a respective node&#39;s estimated position and the estimated position of each of its neighbouring devices whose broadcast estimated position has been received and whose distance from the respective node has been measured comparing the calculated hypothetical distance with the measured distance; modifying the respective node&#39;s estimated position so as to reduce an error function dependent upon the difference between the hypothetical and measured distances and periodically resetting the respective node&#39;s estimated location to a new position in a manner which does not seek to reduce the error function within a single iteration so as to avoid the location from getting stuck in a local minimum value of the error function.

TECHNICAL FIELD

The present invention relates to a method and apparatus for locatingdevices. It particularly relates to locating relatively simple andinexpensive devices which have the ability to communicate with oneanother in a wireless manner, provided the devices are locatedsufficiently close to one another to be “in range”, when such devicesare located with a sufficiently high distribution density that thedevices are able to form an “ad-hoc” network by which the devices maycommunicate with one another and with external devices having anappropriate connection to the wireless ad-hoc network.

BACKGROUND TO THE INVENTION AND PRIOR ART

Wireless ad-hoc networks, which are self-organising, rapidly deployableand which require no fixed infra-structure since they are made solely(or at least largely) of self-contained wireless devices, are known andhave been the subject of considerable research in recent times. However,such networks as proposed heretofore have been restricted in theirapproaches to obtaining positional information about individual deviceswithin the network. In the main, three different types of approach havebeen adopted: approach 1 is simply not to provide positional informationabout individual devices within the network; approach 2 is to rely onsuch information being known a priori (eg by having been carefullyplaced in pre-ordained positions) and not being liable to change in anunpredictable manner; approach 3 is to use devices which include GlobalPositioning Systems (GPS's). In certain applications for such networkshowever, none of the above approaches is ideal. For example, in anapplication for sensing ocean conditions using an ad-hoc network of freefloating sensors the first approach is not ideal because the sense datafrom each sensor is only valuable if accompanied with the position ofthe sensor at the time the data was recorded; the second approach is nottenable because the sensors will move with the ocean currents in anunpredictable manner (even assuming their initial placement was known);and the third approach is non-ideal because of the expense of supplyingeach sensor with a GPS.

In “GPS-free positioning in mobile ad hoc networks” by Srdjan Capkun, etal., Cluster Computing, Volume 5, #2, April 2002 the authors describe analgorithm for permitting devices within a wireless ad-hoc network toobtain relative positional information without the use of any GPScontaining devices, using only information about the distances betweendevices in range of one another (which information, it is said, can befound using a Time of Arrival (TOA) or similar range finding method).The paper mentions that the relative positional information could beassociated with a geographical coordinate system only “if the algorithmis used along with some GPS-capable devices.” However, it does notmention how this would be done. It also points out that for someapplications (of particular concern to the authors) purely relativepositional information is sufficient. The main drawback with theproposed method is that it does not scale well to large systems. Thenumber of communications that each node is required to make increases asthe number of nodes in the network increases. This means that beyondsmall networks the time needed and the processor power required becomesrestrictive. Additionally, the calculations required of each device toexecute the described algorithm are relatively arduous for very simpledevices and therefore likely to be costly in terms of power consumption;additionally, the complexity has a negative impact on the speed withwhich the relative positions of the devices can be recalculated in theevent of movement of the devices.

An alternative approach has also been considered in the field of ad-hocwireless networks which, however, involves the use of base-stations forlocation purposes. In this approach (which may be thought of as asemi-ad-hoc semi-cellular approach) simple devices are able tocommunicate with one another to navigate data through the network(rather than just communicating with base stations as in purely cellularsystems), but use only the base stations for location determinationpurposes (ie they do not attempt to determine their location from thelocations of neighbouring simple devices only from neighbouring basestations). This approach has the disadvantage that a relatively largenumber of the more expensive base stations are required throughout thenetwork.

Yet a further alternative approach has been described by Chris Savareseand Jan Rabaey in two recently published papers (SAVARESE C ET AL:“Robust Positioning Algorithms for Distributed Ad-Hoc Wireless SensorNetworks” USENINX TECHNICAL ANNUAL CONFERENCE, PAGES 317-328, MONTEREY,CA, JUNE 2001, XP002225742; and SAVARESE C ET AL: “Locationing inDistributed Ad-Hoc Wireless Sensor Networks” 2001 IEEE INTERNATIONALCONFERENCE ON ACOUSTICS, SPEECH, AND SIGNAL PROCESSING. PROCEEDINGS(CAT. NO. 01CH37221), SALT LAKE CITY, UT, USA, 7-11 MAY 2001, pages2037-2040 vol. 4, XP0022257432001, Piscataway, N.J., USA, IEEE, USA,ISBN: 0-7803-7041-4). These papers describe a sophisticated and robusttwo stage method for locating devices in a wireless ad-hoc sensornetwork in which a small proportion only of the devices are positionaware (so called anchor nodes, which correspond to the “gps” or “apriori” nodes referred to in this document). The first stage of thealgorithm involves a series of communications spreading out from theanchor nodes by which each (non-anchor) node determines how many hops itis removed from each anchor node. An approximate average distance ofeach hop is then calculated from knowledge of the shortest number ofhops between each pair of anchor nodes and the distances between eachpair of anchor nodes (eg if anchor nodes A and B have a shortest pathbetween them of 5 hops and are located at positions (0,0) and (0,10)according to some arbitrary but fixed global coordinate system, theneach hop can be attributed an average size of 10/5=2 units). By ensuringthat there are at least three anchor nodes, and each node knows itsshortest path (in terms of number of hops) to each of at least threeanchor nodes, it is able to calculate an approximate location foritself. The second stage of the algorithm then iteratively refines theseapproximate locations by having each node broadcasting its own mostrecently calculated position to its neighbouring nodes together with ameasure of “confidence” (which varies between 1 and 0) in the accuracyof the broadcast position (with anchor nodes having a confidence of 1and other nodes having an initial confidence of 0.1). Thereafter,non-anchor nodes update their positions by attempting to triangulatefrom the received broadcast positions of their immediate neighbours fromwhom they have also determined a range measurement and assign aconfidence to their position updated in this manner which is the averageof the confidences assigned (and broadcast) by their immediateneighbours. The iterative procedure is repeated a predetermined numberof times and then stopped. Nodes which still have a low confidence intheir position are disregarded.

Whilst the above described location method of Svarese et al. is quitesophisticated and robust, it would be desirable to provide an improvedmethod which is just as robust but which has improved performance interms of both the accuracy with which nodes are able to locatethemselves and the proportion of nodes which are able to determine theirposition with a high level of confidence.

SUMMARY OF THE INVENTION

According to a first aspect of the present invention, there is provideda method of obtaining positional information about individual wirelessdevices within a wireless ad-hoc network including a plurality ofposition determining devices in which each position determining deviceincludes means for estimating the distance between itself and any othersimilar device forming part of the network which is within range, themethod including the steps of:

-   -   i) each position determining device receiving a broadcast        message from each other similar device in range specifying, if        known, the respective broadcasting device's position or an        estimated position;    -   ii) each position determining device attempting to measure its        distance from each other similar device in range;    -   iii) each position determining device determining its actual        position or an initial estimated position and storing this        information;    -   iv) each position determining device which does not know its        actual position calculating the hypothetical distance between        its estimated position and the position or estimated position of        each neighbouring device whose broadcast position or possible        position has been received and whose distance from the        respective node has been measured in step ii);    -   v) each position determining device which does not know its        actual position comparing the hypothetical distance calculated        in step iv) with the distance measured in step ii);    -   vi) each position determining device which does not know its        actual position, modifying its estimated position so as to        reduce an error function dependent upon the difference between        the hypothetical and measured distances and    -   vii) each position determining device broadcasting to each other        similar device in range, if known, its actual position        determined in step iii) or its modified estimated position        determined in step vi).

This method works very well where the ad-hoc network includes asmall-percentage of devices which have some initial knowledge abouttheir position. This may, for example, be achieved either by having somedevices placed in fixed known locations or by having some devices whichinclude a GPS. Since only a small fraction of the total devices usedneed to be specially treated in this way, there is only a very smalloverall cost increase compared to a network in which none of the devicesare specially treated in this way.

Note that steps (i) and (ii) may be performed in any order (or evensimultaneously or in an overlapping or interleaved way, and may bedifferent for different devices).

Preferably, the above described steps are repeated on a regular basis.However, in some applications the devices will remain in fixed locationsand it is not therefore necessary to repeat all of these steps at eachrepetition or iteration. For example, in such a circumstance therelative distances between neighbouring nodes would only need to bedetermined once. Also, once a device has identified its actual positionit will only need to repeat the final step (vii), and this only untilall of its neighbouring devices have successfully received its broadcastpositional information, unless of course the device moves or a newneighbour comes into range, or it determines a new estimated position,etc. provided, as occurs in a preferred embodiment, each device assumesthat its neighbours are still in the same place provided they canmaintain contact with them if they have not received an updatedestimated position from them. In a preferred embodiment, each device maydecide after a certain length of time, or number of iterations, or uponsome other condition being met, to reduce the frequency with which itcarries out this procedure so as to conserve power, etc.

Thus one embodiment of the invention takes a wireless ad-hoc network ofnodes that each have a set range of communication. Within this networksome nodes have information about their location (it is envisaged thateach of these is either carefully placed and fixed at a certain locationor belongs to a small sub-set of more expensive devices each of which isequipped with a GPS receiver). The nodes in the network then determinetheir distance to other neighbouring nodes that are within range ofcommunication (exactly how would depend on the environment that they arein but something along the line of sonar or radar is envisaged). It ispossible for a node that does not know its location, but is within rangeof at least one other node that does know its location (or an estimatedlocation), to determine that it is located at some point on the circlesurrounding the neighbouring node whose radius is equal to the measureddistance from the respective neighbouring node. As an initial estimate(or guess) the node randomly picks any point on the circle. This initialestimate is then iteratively modified according to an algorithm whichseeks to minimise the difference between the measured distances betweenneighbouring nodes and the hypothetical distances calculated using thecurrent estimations of the positions of the nodes. The presentembodiment thus allows nodes to effectively locate themselves relativeto each other in a very low-cost fashion, and then use partialinformation about their absolute position to enable a proportion ofnodes in the network (seemingly dependent on the density of nodes in thenetwork) to locate themselves accurately and absolutely. It applies toboth fixed (non-moving) and fully mobile networks equally, with mobilenetworks effectively re-calculating the nodes' positions at regularintervals.

Preferably, the network includes at least three devices which have apriori knowledge about their position (or their possible positions).Note it is not necessary that at least two devices which have a prioriknowledge about their position are located sufficiently close togetherfor both devices to be simultaneously in range of a third device.

In one preferred strategy for distributing the devices of the network,there are a small number (approximately 5-10%) of ‘gps’ devices (iedevices having a priori positional information) that are either inplanned locations or are distributed so that there are very fewredundant devices giving excess information to nodes that don't need it.In another preferred strategy, there is a larger number (maybe as highas 25%) of gps devices that are completely randomly distributed inexactly the same way as the other non-gps devices. In both cases thereis a degree of trade-off, the denser the network (i.e. the greater thenumber of devices that have no information about their initial location)the lower the number of ‘gps’ devices that are required.

In a preferred embodiment, all of the devices are position determiningdevices in the sense that they will each attempt to identify theirposition based on the information broadcast to them from neighbouringdevices in the network together with range information determined usingwhatever distance detection mechanisms they possess. However, thepossibility of including certain devices which form part of the networkbut which make no effort to determine their own position is notexcluded. Similarly, for the purposes of this specification, deviceswhich have some a priori knowledge about their position (and thus do notneed to determine their position according to the above set out method)are intended to be covered by the term “position determining devices.”

In one embodiment, when each device first generates an estimatedposition, if it has information from more than one neighbouring device,it will use information from the neighbouring nodes according to thefollowing order of priority: neighbouring nodes which say they knowtheir actual position have highest priority, thereafter neighbouringnodes, which have broadcast an estimated position, have priorityaccording to the measured distance of the neighbouring node from therespective determining node, with closer nodes having higher prioritythan more distant nodes. Where it is possible for an estimated positionto satisfy the constraints set by more than one neighbouring node (iewhere the circles, which are centred around the respective broadcastpositions of the neighbouring nodes and have radiuses equal to themeasured distance to the respective neighbouring nodes, coincide oroverlap in one or more positions), then such an estimated position willbe selected as the initial estimated position. In certain embodiments,when a device, after having already determined an initial estimatedposition (and possibly also having modified the initial estimatedposition one or more times), subsequently receives a broadcast of anactual or estimated position from a neighbouring node which is withinrange and which has a higher priority than the node or nodes whosebroadcast information was originally used to determine its initialestimated position, it re-determines its “initial” estimated positionusing the information newly received from the higher priority node.

Preferably, the error function, which is dependent upon the differencebetween the hypothetical and measured distances, is dependent upon thesum of the squares of the differences between each measured and eachhypothetical distance between a respective node and its nearestneighbours (ie for a node i having near neighbours 2, 3 and 4 the errorfunction which node i seeks to minimise is:$E = {\sum\limits_{j = 2}^{4}\quad\left( {{md}_{ij} - {hd}_{ij}} \right)^{2}}$

Where md_(ij) is the measured distance from node i to node j and hd_(ij)is the hypothetical distance from node i to node j).

Preferably, each device includes a resetting algorithm the purpose ofwhich is to avoid the device from getting its position estimation“stuck” in a local minimum of the error function. Such local minima inthe error function often occur at locations approximately symmetricallyopposite the actual position of the device with respect to a lineconnecting together two neighbouring nodes with respect to which thedevice is attempting to position itself. Preferably therefore, theresetting algorithm causes the reset estimated position to beapproximately a mirror reflection of its current estimated position withrespect to a line connecting the broadcast (actual or estimated)positions of the closest pair of neighbouring nodes which have broadcasttheir (actual or estimated) positions.

Preferably, the resetting algorithm considers one or more of thefollowing parameters when deciding whether or not to reset its estimatedposition: the value of the error function calculated in respect of thecurrent estimated position, both when compared to the average value forthe error function during all preceding iterations and as an absolutevalue, the number of times the estimated position has been modifiedwithout resetting and how recently a neighbouring node has performed areset.

In order to optimally deal with the case where the devices are movingrelative to one another, each device preferably maintains a record ofthe number of neighbours which it has at any one time. In the event thatthis number changes between iterations, which is thus indicative of aformer neighbour moving out of range or a former non-neighbour movinginto range, the device which detects this change preferably reacts byinhibiting any resetting for a certain number of iterations. In thecurrently preferred embodiment, the number of iterations, afterdetecting a change in the number of neighbours, for which a reset isinhibited is one.

Preferably, each device (apart from those which have some a prioriknowledge of their position from a reliable source) maintains aplurality of possible or estimated positions in parallel with oneanother, each of which may be referred to by an index (eg if threepossible positions are maintained in parallel these may be referred toas r₁ r₂, r₃). Preferably, each parallel position is updated using thecorresponding parallel positions broadcast by its neighbouring devices(eg r₁ of Node 1 is updated using r, of Nodes 2, 3 and 4). When thedevice is required to provide a single position (eg for positionstamping data, etc) it preferably calculates the mean position of all ofthe parallel stored possible positions. Additionally, the devicepreferably transmits an estimated maximum positional error which iscalculated in such a way that it depends upon the variance between thedifferent parallel stored possible positions.

In a preferred embodiment, the estimated maximum positional error iscalculated as follows (for a two-dimensional environment, the extensionto three dimensional environments being obvious):Error=((Max x−Min x)+(Max y−Min y))/2(with Max x=Max (x₁, x₂, x₃), r, =x₁i+y₁j, i and j being unit vectors inthe x and y directions respectively, etc.)

By analogy with the well known technique of simulated annealing, thepresent procedure can be thought of as a type of local-knowledge-onlysimulated annealing technique in which the algorithm can be consideredas minimising the energy of the system (where the energy of the systemis the sum of the energies of the individual components and eachindividual component's energy depends, in the present exampleapplication, on how far away from its real position it thinks it is).The difference between this method of the present invention andconventional simulated annealing is that this method does not require aglobal measure of total energy to be available.

As an example of a very different field to which this procedure could beapplied, consider the following problem:

There is a set (large) number of stars in certain positions to bephotographed. A telescope must decide what is the best path betweenstars so that every star is photographed and the minimum total“distance” is travelled. This is a version of the well known ‘travellingsalesman’ problem. Basically the approach using the present procedurewould be, pick a star, go to that star, photograph it, pick another starthat hasn't been photographed, repeat. What the procedure would do wouldbe to minimise the distance (energy) between successive stars. i.e. thealgorithm would choose the star nearest to it which hadn't already beenphotographed. In this way the algorithm would have no knowledge of theglobal energy (i.e. the total distance travelled), but only the localenergy (i.e. distance from star A being photographed to star X). Thereset clause would come in where a star was reached and it had no starswithin a suitable distance to move on to, at that point it would bereturned to the previous star in the sequence and told to select adifferent star.

Further preferred features of the first aspect of the present inventionare set out in the claims dependent upon claim 1.

According to a second aspect of the present invention, there is provideda method of operating an individual device as set out in claim 10.

According to a third aspect of the present invention, there is provideda device as set out in claim 11.

According to a further aspect of the present invention, there isprovided a method of obtaining positional information about individualwireless devices within a wireless ad-hoc network including a pluralityof position determining devices in which each position determiningdevice includes means for estimating the distance between itself and anyother similar device forming part of the network which is within range,the method including the steps of:

-   -   i) each position determining device receiving a broadcast        message from each other similar device in range specifying, if        known, the respective broadcasting device's position or series        of possible positions;    -   ii) each position determining device attempting to measure its        distance from each other similar device in range;    -   iii) each position determining device calculating, if it has        sufficient information, its position, or a series of possible        positions and storing this information; and    -   iv) each position determining device broadcasting to each other        similar device in range, if known, its position or series of        possible positions determined in step iii.

This method works very well where the ad-hoc network includes a smallpercentage of devices which have some initial knowledge about theirposition. This may, for example, be achieved either by having somedevices placed in fixed known locations or by having some devices whichinclude a GPS. Since only a small fraction of the total devices usedneed to be specially treated in this way, there is only a very smalloverall cost increase compared to a network in which none of the devicesare specially treated in this way.

Note that steps (i) and (ii) may be performed in any order (or evensimultaneously or in an overlapping or interleaved way, and may bedifferent for different devices).

Preferably, the above described steps are repeated on a regular basis.However, in some applications the devices will remain in fixed locationsand it is not therefore necessary to repeat all of these steps at eachrepetition or iteration. For example, in such a circumstance therelative distances between neighbouring nodes would only need to bedetermined once. Also, once a device has identified its actual positionit will only need to repeat the final step (iv), and this only until allof its neighbouring devices have established their own locations, or thenetwork decides that no further elimination of incorrect possiblelocations can be removed because of the particular distribution of thedevices within the network.

Thus one embodiment of the invention takes a wireless ad-hoc network ofnodes that each have a set range of communication. Within this networksome nodes have information about their location (it is envisaged thateach of these is either carefully placed and fixed at a certain locationor belongs to a small sub-set of more expensive devices each of which isequipped with a GPS receiver). The nodes in the network then determinetheir distance to other neighbouring nodes that are within range ofcommunication (exactly how would depend on the environment that they arein but something along the line of sonar or radar is envisaged). Bysolving trigonometric equations, it is possible for a node that does notknow it's location, but is within range of two nodes that do know theirlocation, to solve the equations of circles and determine that it islocated in one of two possible locations. This information can thenpropagate through the network allowing other nodes to determine theirposition to one of several locations. When positional information fromother nodes also propagates through the network it becomes clear thatsome of the possible positions for a node of unknown location areinconsistent with all the data. The nodes thus discard theseinconsistent positions to leave fewer possible positions and in somecases 1 possible position, which is the correct location of the node.The present embodiment thus allows nodes to effectively locatethemselves relative to each other in a very low-cost fashion, and thenuse partial information about their absolute position to enable aproportion of nodes in the network (seemingly dependent on the densityof nodes in the network) to locate themselves accurately and absolutely.It applies to both fixed (non-moving) and fully mobile networks equally,with mobile networks effectively re-calculating the nodes' positions atregular intervals.

Preferably, the network includes at least three devices which have apriori knowledge about their position (or their possible positions) atleast two of which are located sufficiently close together to be inrange of a third device.

In one preferred strategy for distributing the devices of the network,there are a small number (certainly <10%, sometimes as low as □5%) of‘gps’ devices (ie devices having a priori positional information) thatare either in planned locations or are distributed so that there arevery few redundant devices giving excess information to nodes that don'tneed it. In another preferred strategy, there is a larger number (maybeas high as 25%) of gps devices that are completely randomly distributedin exactly the same way as the other non-gps devices. In both casesthere is a degree of trade-off, the denser the network (i.e. the greaterthe number of devices that have no information about their initiallocation) the lower the number of ‘gps’ devices that are required.

By the term possible positions, or series of possible positions, it ismeant that one of the possible positions is the actual position of thedevice (within a certain margin of error) but the device does not (atthat particular time at least) know which of the possible positions isthe correct one.

In a preferred embodiment, all of the devices are position determiningdevices in the sense that they will each attempt to identify theirposition based on the information broadcast to them from neighbouringdevices in the network together with range information determined usingwhatever distance detection mechanisms they possess. However, thepossibility of including certain devices which form part of the networkbut which make no effort to determine their own position is notexcluded. Similarly, for the purposes of this specification, deviceswhich have some a priori knowledge about their position (and thus do notneed to determine their position according to the above set out method)are intended to be covered by the term “position determining devices.”

BRIEF DESCRIPTION OF THE DRAWINGS

In order that the present invention may be better understood,embodiments thereof will now be described, by way of example only, withreference to the accompanying drawings in which:

FIG. 1 is a diagrammatic representation of a wireless ad-hoc networkprior to commencement of a procedure for locating the positions of thedevices within the network;

FIG. 2 is a diagrammatic representation of the wireless network of FIG.1 after a first iteration of the position determination procedure;

FIG. 3 is a diagrammatic representation of the wireless network of FIG.1 after a second iteration of the position determination procedure;

FIG. 4 is a diagrammatic representation of the wireless network of FIG.1 after a third iteration of the position determination procedure;

FIG. 5 is a diagrammatic representation of the wireless network of FIG.1 after a fourth iteration of the position determination procedure;

FIG. 6 is a diagrammatic representation of the wireless network of FIG.1 after a fifth iteration of the position determination procedure;

FIG. 7 is a diagrammatic representation of the wireless network of FIG.1 after a sixth iteration of the position determination procedure;

FIG. 8 is a schematic diagram of an individual device of the wirelessnetwork of FIG. 1;

FIG. 9 is a schematic diagram of an arrangement of position determiningdevices some of which have a priori knowledge of their position and theothers of which perform an iterative algorithm to find estimations oftheir positions;

FIG. 10 is a schematic diagram of the arrangement of FIG. 9 illustratingthe estimated positions of each of the nodes not having a prioriknowledge of their position after approximately 1300 iterations of aposition estimation procedure according to the present invention;

FIG. 11 is a flow chart of the iterative procedure performed by thedevices illustrated in FIGS. 9 and 10 not having a priori knowledge oftheir position;

FIG. 12 is a flow chart illustrating the sub-steps of a “CONSIDER RESET”sub-routine of the procedure of FIG. 11;

FIG. 13 is a contour graph of the error function versus position of asingle node communicating with three neighbouring nodes;

FIG. 14 is a three dimensional representation of the contour graph ofFIG. 13;

FIG. 15 is a plot of the noise function used to generate the graph ofFIG. 17;

FIG. 16 is a graph showing the increase of the percentage of nodes whichcorrectly estimate their position as a function of the total number of“random” nodes in the arrangement of FIG. 9 (having 16 nodes having apriori knowledge of their position); and

FIG. 17 is a graph similar to that of FIG. 16 showing the effects ofnoise introduced to the measurement of distance between neighbouringnodes.

DETAILED DESCRIPTION OF EMBODIMENTS

Part 1: FIGS. 1 to 8

The first embodiment to be described is of a small wireless ad-hocnetwork comprising twelve position determining devices, only three ofwhich contain GPS's, and which are able to determine the position ofmost of the devices within six iterations of the position determiningalgorithm described below. The described embodiment, comprising onlytwelve devices, could be used for monitoring a small body of water.However, it will be apparent to a person skilled in the art that thedescribed embodiment could easily be scaled up for use in monitoring avery large body of water such as a sea or ocean, by including many moresimple devices (no more of which would, in theory, require in-builtGPS's).

In overview, in the present example embodiment, three of the devicesinclude GPS's and these broadcast their location at the first step ofeach of the required six iterations. At approximately the same time,each of the other devices determines its distance from each other devicewith which it is in range. Using this information, at each iterationeach device attempts to identify its location or a series of possiblelocations and then broadcasts such locations or possible locations atthe start of each subsequent iteration. As devices begin to receive moreinformation about possible positions of their neighbouring devices, theyare firstly able to generate a series of possible positions themselvesand then are able to eliminate impossible positions until after only sixiterations in the present example, six of the nine devices whichoriginally had no information about their whereabouts identify theirexact position, one narrows down the possibilities to one of twopossible positions and the remaining two narrow down the possibilitiesto one of four possible positions.

Thus, FIG. 1 illustrates the wireless ad-hoc network of twelve positiondetermining devices 1-12 prior to any iterations of the procedure fordetermining the locations of the devices. The behaviour of the networkhas been simulated and FIGS. 2 to 7 illustrate the evolution of thenetwork during successive iterations of the position determinationprocedure according to the simulation. Each device 1-12 can also bethought of as forming a node of the network as a whole. Therefore theterm node may be used in place of the term device throughout thisdocument, when referring to the devices' role as nodes.

In the initial state of the network illustrated in FIG. 1, only three ofthe devices 1, 2, and 3 have a priori knowledge of their position. Inthe present embodiment, these three devices 1, 2 and 3 have suchknowledge because they each have an inbuilt GPS. For purposes ofillustration, the range 1 a, 2 a, 3 a, of each of these devices 1, 2, 3is shown in each of FIGS. 1 to 7. The ranges of the other devices 4-12is omitted for the sake of clarity. However, the ranges of all of thedevices (including those with and without in-built GPS's) are equal.

As will be apparent to a person skilled in the art, the communicationsbetween the devices can be carried out in a number of well knownmanners. The details of such methods of communication will not bedescribed here in detail. ‘Ad Hoc networking’, Charles E. Perkins, Pub.Adison Wesley, December 2001 and the references cited therein provide adetailed description of some suitable such methods. Similarly, there aremany well known methods of determining the distance from one device toanother, such as, for example, the Radio Acoustic Ranging (RAR) method.Implementations of this method are well known and will not be discussedhere in detail. Chapter 6 of ‘Hydrographic Manual’ by Commander K. T.Adams, Special publication of US dept. of commerce, Coast and geodeticsurvey published by US Govt. printing office, 1942 and the referencescited therein provide a detailed description of RAR.

First Iteration

Step 1: the first step of the procedure is for the GPS containingdevices 1, 2 and 3 to broadcast their (initially known) positions to allof the devices in range. Thus device 1 broadcasts its position todevices 4 and 9-11. Device 2 broadcasts its position to devices 5, 6 and7 (and also to device 3 which, in the present embodiment, ignores thisinformation for the purposes of position determination since it is ableto identify its position via its in-built GPS). Finally, device 3broadcasts its position to devices 6 and 7 (and also device 2, seecomment above).

Step 2: the second step is for each device to determine its distancefrom each neighbouring device which is within range. Note that in thepresent embodiment, each device only attempts to determine its distancefrom devices with which it can communicate directly. In alternativeembodiments, however, if the range determining mechanism can act over agreater distance than the communication device (as in the presentembodiment, see the discussion below with reference to FIG. 7) it may beadvantageous to permit devices having difficulty locating themselvesusing only their in-range neighbours to obtain distance information withrespect to more remote, out of range devices and to obtain the positioninformation from those out of range devices via intermediate nodes whichare in range.

In the present embodiment, the devices 1, 2, 3 having in-built GPS's donot gather this information since they do not need to determine theirpositions. Device 4 determines its distance from nodes 1, 5, 8 and 12;Device 5 determines its distance from nodes 11,4,12,8,6 and 2; etc.(note for a fuller listing of the positions of the nodes, the nodeswithin range of one another and the details of the calculationsperformed by the nodes at each iteration of the method, see theAppendix, which sets out all of the details in note form).

Step 3: in the third step each device determines if it has sufficientinformation to determine either its position or a series of possiblepositions. In the present embodiment, this requires knowledge of theposition, or series of possible positions, of two or more neighbouringdevices. In the present example at the first iteration, this is the caseonly for nodes 6 and 7 (node 5 being just outside the range of node 3)which are in range of both nodes 2 and 3 which (since they includeGPS's) have an initial knowledge of their position.

If a device determines that it has sufficient information to calculateits position or a series of possible positions it does so (inembodiments involving a very large number of devices it is possible thatvery large numbers of possible positions might have to be calculated andstored; such embodiments may therefore include a threshold such that ifthe series of possible positions includes more than a predeterminednumber of such possible positions then the possible positions areneither stored nor transmitted at the following step 1, in the hope thatafter subsequent iterations the number of possible positions will havereduced to below the threshold amount).

In the present embodiment, this is achieved by solving the followingequations:(X−X _(N1))+(Y−Y _(N1))=R _(N1) ²(X−X _(N2))²+(Y−Y _(N2))=R _(N2) ²where X_(N1)&Y_(N1) and X_(N2) &Y_(N2) are the broadcast X and Ycoordinates of a pair of neighbouring nodes N1 and N2 which havebroadcast their X and Y coordinates during the preceding Step 1. Thesolution of these simultaneous equations will result in two possiblepositions of the node in question, a correct and an incorrect solution(though these may in theory coincide when the device in question and theneighbouring nodes all lie on a straight line). The incorrect solutionis symmetrical with the correct solution along a line of symmetryconnecting the two neighbouring nodes. Note that if information as tothe position and distance from the node in question of a thirdneighbouring node were known, it would be possible to eliminate theincorrect solution. As will be appreciated from the specificdescriptions of the calculations performed by devices in the presentexample given below, this combination of determining possible positionsand comparing these possible positions with known ranges from thirddevices (in combination with their possible positions) it is possible tomaintain and update lists of possible positions of each node.

Thus in the present example, node 6 determines that it should solve thefollowing equations:(X−118)²+(Y−285)²=129² (Node 2)(X−88)²+(Y−308)²=132² (Node 3)

From which it determines that either X=32, Y=189 (which is the correctsolution) or X=188, Y=393 (which is the incorrect solution).

At this first iteration there is no third neighbouring node from whichnode 6 can attempt to eliminate one of these two possible solutions.Thus it maintains both of these and proceeds to the next step. Node 7performs a similar set of calculations to determine that eitherX_(N7)=28, Y_(N7)=336 or X_(N7)=45, Y_(N7)=359.

The third step represents the final step of the first iteration.

Second Iteration

First step: Every device which has information about its position or aseries of possible positions broadcasts this information to allneighbouring devices in range. Thus nodes 1, 2 and 3 broadcast to thesame nodes as in the first iteration (note if they have moved, the newpositions of these nodes will be used by the neighbouring nodes 6 and 7to update their series of possible positions based on the positions anddistances of these nodes), including node 2 broadcasting to node 5.Additionally, node 6 broadcasts its pair of possible positions to nodes5, 8 and 12 (as well as nodes 2 and 3 which ignore the information sincethey have in-built GPS's and node 7 which cannot use this information toeliminate impossible positions because node 6's information derives fromthe same nodes—nodes 2 and 3—as for node 7, thus preventing anypossibilities from being ruled out). Node 7 is only in range of nodes 2,3 and 6. It does broadcast to all of these nodes but it does not assistany of them to determine their location more accurately. The fact thatnodes 6 and 7 have determined and are broadcasting a series of possiblepositions is indicated on FIG. 2 by replacing the diamonds representingnodes which have no positional information with squares surroundingcrosses.

Second step: All of the devices re-measure their distance fromneighbouring nodes as before. In the simulation of the present example,the devices do not move and so this step will be identical in allrespects in each iteration and will not therefore be further describedin subsequent iterations.

Third step: Devices 6 and 7 will recalculate their possible positions inthe same way as in the second step in the first iteration with exactlythe same results (since the devices are held stationary in the presentexample as simulated). However, device 5 now has sufficient informationto attempt to calculate a series of possible positions based on theposition information received from nodes 6 and 2. It derives fourpossible positions in total, two from assuming node 6 is in one of itspossible positions and two from assuming node 6 is in the other of itspossible positions (see the Appendix for the exact values calculated bynode 5).

Third Iteration

First step: The devices re-broadcast their position information ifknown. The only difference from the preceding iteration here is thatnode 5 has a series of four possible positions which it broadcasts tonodes 2, 4, 6, 8, 11 and 12. This is illustrated in FIG. 3 by havingchanged the symbol used to indicate node 5. Nodes 2 and 6 effectivelyignore this information as it cannot assist them in improving theirpositional information. However, the broadcast information from node 5to nodes 4, 8, 11 and 12 means that each of these nodes is now in rangeof two nodes which have broadcast to them positional information(broadcasting nodes 1 and 5 are in range of nodes 4 and 11; broadcastingnodes 5 and 6 are in range of nodes 8 and 12).

Second step: As before, each device determines its distance from eachin-range neighbour.

Third step: The non-GPS nodes which already have some positionalinformation (ie nodes 5, 6 and 7) recalculate their possible positions.In the present example this leads to the same results as in the previousiteration because they have no new information and all of the nodes arestatic. The non-GPS nodes which received sufficient information tocalculate their possible positions for the first time in the first stepof this iteration (ie nodes 4, 11, 8 and 12) calculate their possiblepositions for the first time. Nodes 4 and 11 obtain eight possiblepositions (see Appendix 1 for details), two for each possible positionof node 5 (note that node 1 is a GPS node and thus has only 1 possibleposition). However, four of the possible positions of node 4 calculatedin this way are complex. This corresponds to two of the possiblepositions of node 5 being unfeasibly faraway from node 1 given the knowndistance of node 4 from both node 1 and node 5 (the circles surroundingthe possible positions of nodes 1 and 5 having radius corresponding tothe determined distance between node 4 and nodes 1 and 5 respectively donot intersect for these two unfeasible possible positions of node 5).Similarly, six of the possible positions of node 11 calculated in thisway are complex (corresponding to three of the possible positions ofnode 5 being unfeasible), leaving node 11 with only two possiblepositions (note this effectively narrows down the number of possiblepositions of node 5 to 1 position—node 5 will be able to determine thisitself as soon as it receives the possible positions of node 11 at step1 of the following iteration).

Nodes 8 and 12 obtain sixteen possible positions, two for each of theeight possible combinations of the four possible positions of node 5 andthe two possible positions of node 6. However, in both cases half ofthese combinations of possible positions of nodes 5 and 6 give rise tocomplex solutions and hence correspond to unfeasible combinations,reducing the number of possible positions of nodes 8 and 12 to eighteach (see the Appendix for details).

Fourth Iteration

Step 1: In this iteration, all of nodes 1, 2, 3, 4, 5, 6, 7, 8, 11 and12 now have ome information about their position (ie one ore morepossible positions) which they broadcast to all of their neighbours inrange. This is illustrated in FIG. 4 in which all of nodes 4, 5, 6, 7,8, 11 and 12 are represented by the square surrounding a cross markingwhich indicates that these devices are all broadcasting a series ofpossible positions. This means that nodes 9 and 10 receive broadcastsfrom nodes 1 and 11 so that these two devices will be able to determinea series of possible positions for the first time in step 3.Additionally, nodes 4, 5, 8 and 12 receive broadcasts from sufficientlymany other nodes that they are able to eliminate all but the correctsolutions from amongst the possible locations derived from just two ofthe total number of nodes used to determine a series of possiblepositions.

Step 2: As before, each device determines its distance from eachin-range neighbour.

Step 3: Devices 9 and 10 calculate at this step for the first time aseries of four possible positions each using the positional informationbroadcast by both of nodes 1 and 11. The four possible positions derivefrom two possibilities in respect of each of the two broadcast possiblepositions of node 11.

Device 5 receives the two possible positions of node 11 for the firsttime and uses this information to eliminate all but the correct positionfrom its series of four possible positions determined (as in theprevious iteration) from the information received from nodes 2 and 6, tothus arrive at its actual position.

Device 4 receives all of the possible positions of nodes 8 and 12 anduses these to eliminate all but the correct position from its series offour possible positions determined from the information received fromnodes 1 and 5.

Device 8 receives all of the possible positions of nodes 4, 5, 6 and 12.In this case, device 8 arbitrarily decides to obtain a series of sixteenpossible locations (only six of which are real) using the possiblepositions of nodes 4 and 6 and then to use the possible positions ofnodes 5 and 12 to eliminate all but the correct position from the (real)six possible locations.

Device 12 receives all of the possible positions of nodes 4, 5, 6 and 8.In this case, device 12 arbitrarily decides to use nodes 4 and 6 toderive a series of sixteen possible positions of which twelve areeliminated straight away as they give complex positions and theremaining three are eliminated as incompatible with any of the possiblepositions of either of nodes 5 or 8 as broadcast to device 12 duringstep 1 of this iteration.

Fifth Iteration

Step 1: At this point, all of the devices have some positionalinformation and thus all of the devices broadcast this positionalinformation to all of the devices in range. Furthermore, devices 4, 5, 8and 12 have identified their actual position (as opposed to a series ofpossible positions) and these nodes are therefore indicated in FIG. 5 bylarge solid squares.

Step 2: As before, each device determines its distance from eachin-range neighbour.

Step 3: As is evident from FIG. 5, node 6 is now in range of at leastthree neighbouring nodes which have identified their position (nodes 2,3, 5, 8 and 12). This enables device 6 to determine its own positionuniquely. In this case it does this by again obtaining a pair ofpossible positions from the information received from nodes 2 and 3 andthen eliminating the incorrect solution by comparing the distance to anyof the other nodes whose position is known (ie any of nodes 5, 8 or 12)as calculated using the pair of possible positions for device 6 justcalculated, with the actual distance to the node as determined in step2.

Sixth Iteration

Step 1: As before, all of the nodes broadcast their position informationto every node in range. The only difference from the corresponding step1 in the preceding iteration is that in this iteration device 6 has nowidentified its actual position. This information is broadcast to node 7(in addition to the other nodes which are in range of node 6).

Step 2: As before, each device determines its distance from eachin-range neighbour.

Step 3: Node 7 now has three nodes in range which have all broadcast asingle position to node 7 which can therefore determine its own positionuniquely (ie removing the ambiguity in the position of node 6 enablesnode 7 to remove the ambiguity from its own position). The other devicesperform the same calculations as before to reconfirm their own positions(or series of possible positions in the case of nodes 11, 10 and 9).Note that in the present example where there is no movement of thenodes, the situation is now static and no further nodes will be able toimprove their knowledge of their position in subsequent iterations. Thisposition is illustrated in FIG. 7 in which nodes 9, 10 and 11 areindicated as broadcasting a series of possible positions at eachiteration after the sixth (by use of the square symbol surrounding across) whilst all of the remaining non-GPS nodes are indicated asbroadcasting their actual position at each subsequent iteration (by useof a larger solid square).

Description of an Individual Device

FIG. 8 illustrates an individual one, 4, of the non-GPS devices 4-12 ingreater detail (note that in the present embodiment, all of the non-GPSdevices are identical to one another, while the GPS devices 1-3 aresimilar except that they include a GPS device). In alternativeembodiments however it may be advantageous to provide the more expensiveGPS devices with other additional features over and above the standardnon-GPS devices, which features are required in only a minority of thedevices.

As shown in FIG. 8, the device 4, comprises a water-proof casing 13having the shape of an inverted cone with a large disk-shaped base.Within the cone-part of the casing 13 there is an annular ballast 14which ensures that, in use, the device floats with the cone-partsubmerged beneath the surface of the water while the base part floatsabove the surface of the water. Mounted within the base part is anannular control and power source part 16; this contains a battery as asource of power and various electronic modules, for controlling thetransmission and reception of various signals from and to the device 4,described in greater detail below. Mounted at the centre of the topsurface of the base-part of the casing 13 is an aerial 18; this choiceof location ensures that the aerial 18 is generally above the surface ofthe water on which the device is floating when in use. The device 4 alsoincludes a sensor part 19 which includes a sonar receiver and, in thepresent embodiment, a temperature sensor, located towards the point ofthe cone-part to ensure that it is always located beneath the surface ofthe water. Located in the point of the cone part is a sonar transmitter20 for radiating sonic waves. The aerial 18, sensor part 19 and sonartransmitter 20 are all connected to the control and power source part 16via suitable connecting wires 21.

As mentioned above, the devices determine their range from one anotherusing the Radio Acoustic Ranging (RAR) method referred to above. Thismethod essentially involves a device transmitting a radio wave viaaerial 18 and a sound wave via the sonar transmitter simultaneously. Theneighbouring devices which are in range detect the incoming radio signaland then measure the time elapsed before they receive the sound wavesignal. A simple velocity over time calculation then gives rise to thedistance between the transmitting and receiving devices.

As will be apparent to a person skilled in the art, the control andpower source part 16 includes circuitry for transmitting and receivingsignal over the air interface between neighbouring devices via theiraerials 18, control circuitry for activating the sonar transmitter 20and processing circuitry for processing signals received from the sensorpart 19 to detect when a sound wave is received and also the temperatureof the water adjacent to the sensor part 19. The processing circuitry isalso able to control the device to carry out the various steps of thepositioning protocol described above, including the necessary digitalprocessing, storage and timing means.

Variations

In embodiments where the devices move, knowledge of the maximum expectedspeed can advantageously be used to help eliminate unlikely possiblesolutions as devices come in and out of range of one another.

Instead of having aerials or other range finding devices which transmitand/or receive signals equally well in all directions, it would bepossible to use non-symmetrical devices to reduce the ambiguity of theposition of nodes. For example, in one embodiment, each node has twotransmitters and receivers, each of which is able to transmit/receivesignals from a sector of a circle such that the node is able totransmit/receive information from all directions except for a smallportion at the front and back where transmission does not cover toprevent interference. Thus by knowing the range to other nodes, nodeorientation and which side of those nodes the node being located lieson, similar equations can be solved to determine position of a node. Theadvantage of this approach is that there is less ambiguity in thepossible position of the node. However, there is a chance that nodeswhich are within range of one another will not be able to communicatedue to the “black spot” at both the front and the back of each node.

Instead of relying solely on range information, the devices couldinclude some means of determining a bearing from one or more nodes withwhich they are able to communicate (possibly indirectly through thenetwork) or from completely independent objects at known positions (iebeacons). In such a case, each node will be able to locate itself withfewer neighbouring nodes. However, such bearing determination means arelikely to increase the cost of individual devices.

An alternative application for these devices would be in monitoringactive volcanoes. In such an application, a number of devices can becarefully placed in selected locations and programmed in with theirlocations (these would then replace the GPS devices of the abovedescribed embodiment). The remaining devices may then be randomlydispersed from say a helicopter or aeroplane flying over the mouth ofthe volcano. Although some devices will inevitably perish in the adverseconditions, it is probable that sufficient can survive to form an ad-hocnetwork and to report back to the outside (carefully located) deviceswhich can then forward on useful information to a remote station wherethe data can be processed.

There are many possible applications for devices as above described suchas, for example, employee identity cards which continually locate thewearer and update their position to a central computer, or trafficmonitoring systems where such a device is located in a number ofvehicles, and traffic jams can be detected and avoided, etc.

Part 1 of this description additionally includes the following clauses:

1. A method of obtaining positional information about individualwireless devices within a wireless ad-hoc network including a pluralityof position determining devices in which each position determiningdevice includes means for estimating the distance between itself and anyother similar device forming part of the network which is within range,the method including the steps of:

-   -   i) each position determining device receiving a broadcast        message from each other similar device in range specifying, if        known, the respective broadcasting device's position or series        of possible positions;    -   ii) each position determining device attempting to measure its        distance from each other similar device in range;    -   iii) each position determining device calculating, if it has        sufficient information, its position, or a series of possible        positions and storing this information; and    -   iv) each position determining device broadcasting to each other        similar device in range, if known, its position or series of        possible positions determined in step iii.

2. A method according to clause 1 wherein the position determiningdevices employ one or both of sonar and radar techniques for determiningtheir distance from neighbouring position determining device.

3. A method according to either preceding clause wherein the means forestimating the distance between itself and any other similar device ofone or more of the position determining devices is non-rotationallysymmetrical, whereby certain ambiguities in the possible positions ofsaid one or more of the position determining devices can be resolved oravoided.

4. A method according to clause 3 wherein the or each distanceestimating means comprises a first and second pair of a transmitter anda receiver, and wherein the first pair is able to transmit and receivesignals only within a first sector of a circle centred around therespective device and approximately in the plane of the network ofdevices, and the second pair is able to transmit and receive signalsonly within a second sector of the circle, wherein the first and secondsectors do not overlap one another.

5. A method according to any preceding clause including the step ofinforming a minority of the position determining devices of theirposition independently of the other devices in the network.

6. A method according to clause 5 wherein at least three devices areindependently informed of their position.

7. A method according to clause 5 or 6, wherein at least two deviceswhich are in range of a third device are independently informed of theirposition.

8. A method according to clause 5, 6 or 7 wherein no more than twentyfive percent of the devices are independently informed of theirposition.

9. A method of operating a wireless device for use in forming, togetherwith a plurality of other similar devices, a wireless ad-hoc network,the method comprising the steps of:

-   -   i) listening for a broadcast message from each other similar        device in range specifying the respective broadcasting device's        position or series of possible positions;    -   ii) attempting to measure its distance from each other similar        device in range;    -   iii) calculating, if it has sufficient information, its        position, or a series of possible positions and storing this        information; and    -   iv) broadcasting to each other similar device in range, if        known, its position or series of possible positions determined        in step iii.

10. A carrier medium carrying processor implementable instructions forcausing a device or devices to carry out the method of any precedingclause during implementation of the instructions.

11. A device for use in forming, together with a plurality of othersimilar devices, a wireless ad-hoc network, the device comprising:

-   -   i) a receiver (18, 21, 16) for receiving a broadcast message        from each other similar device in range specifying, when known,        the respective broadcasting device's position or series of        possible positions;    -   ii) distance measurement means (16, 21, 18, 19, 20) for        measuring the device's distance from each other similar device        in range;    -   iii) processing means (16) for calculating, if it has sufficient        information, its position, or a series of possible positions and        storage means (16) for storing this information; and    -   iv) a transmitter (16, 21, 18) for broadcasting to each other        similar device in range, if known, its position or series of        possible positions determined by the processing means and stored        in the storage means.        Part 2: FIGS. 9 to 17

Referring firstly to FIG. 9, one aspect of the present invention is analgorithm or procedure by which individual devices forming nodes withinan ad hoc network can attempt to estimate their position based on theinformation broadcast to them by their neighbouring nodes together witha measured value of their distance from those neighbouring nodes. Afirst example of such a procedure, described below, is particularlyadvantageous because it is robust to noise within the measurements ofdistance between nodes and because it is effective even in ad hocnetworks in which a small number of nodes having a priori knowledge oftheir position (henceforth referred to as “a priori” nodes) are sothinly distributed that no two such nodes are sufficiently close to oneanother for both nodes to be able to communicate (simultaneously) with athird node (not having a priori knowledge of its position).

In order to demonstrate the robustness of the example procedure in an adhoc network with a sparse density of “a priori” nodes and some noise onthe distance measurements, the operation of the example procedure in anad hoc network having the arrangement shown in FIG. 9 is described below(note the actual performance of the procedure was carried out on acomputer simulation). The particular arrangement of FIG. 9 was formed byproviding a grid of sixteen “a priori” nodes a1,a2, . . . ,a16 evenlyspaced apart from one another such that their ranges of communication a1r, a2 r, . . . ,a16 r just touch one another without any overlap, asshown. On to this grid area (a square having sides equal to four timesthe diameter of each range of communication circle a1 r-a16 r), 125nodes r1,r2, . . . ,r125 which do not have any “a priori” knowledge oftheir position are randomly distributed (for this reason they arehenceforth referred to as random nodes as distinct from the “a priori”nodes which are placed in non-random specified positions).

The position estimation procedure is then carried out until a reasonablystable solution is arrived at. This may be determined on a node by nodebasis by simply freezing the node's individual position estimation if ithas not changed significantly for a predetermined large number ofiterations. However in the present simulation, the procedure was simplyallowed to continue until no further significant improvement was beingachieved in the overall percentage of nodes successfully locatingthemselves within 5% of their correct position. This occurred afterapproximately 1300 iterations of the procedure. The situation afterthese 1300 iterations is illustrated in FIG. 10 in which the actualposition of each random node which has managed to form an estimation ofits position (124 out of the 125 random nodes) is marked with a hollowsquare and the estimated position of each node is indicated by a hollowcircle (which, if it is located outside the corresponding hollow square,is connected to its respective hollow square by a straight line). Thesingle random node r70 which was not able to locate itself is locatedtowards the centre of the grid and was unable to locate itself at allbecause it was not in range of any other node (note that the randomnodes have exactly the same range of communication as the “a priori”nodes though these are not marked in either FIG. 9 or 10 to avoidrendering the Figures unclear due to excessive clutter).

Note that in the description of the procedure below, details of how andwhen the positional information from neighbouring nodes is received, thedetails of how and when the current estimate is broadcast to other nodesand details of how and when the distance to neighbouring devices ismeasured are deliberately not discussed. This is because theseprocedures are considered to operate at a different modular “layer”.Operating in this way is advantageous because the details of how theselower level procedures are performed should not be of concern to theprocedure described below. Instead, an interface is provided whereby theprocedure is able to access the latest positional information which hasbeen broadcast to the device, the latest measured distances and it makesavailable at all times the current estimated position, from and to thelower layer respectively, which is then responsible for communicatingwith its neighbouring devices in a conventional manner. All that isrequired is that the communications should happen at the same frequencywith which iterations are performed. Preferably, the communications withneighbouring nodes and the measurement of distances to neighbouringnodes occurs when the procedure described below is waiting betweenexecution of consecutive iterations. However, if the network is static,it is not necessary to continually update the distance measurementssince these will not change.

Referring now to FIG. 11, the procedure followed by each random node isdescribed below. Note that the “a priori” nodes need only broadcasttheir (assumed to be completely accurate) positions at the beginning ofeach iteration. Prior to commencing the procedure, each device will havea few variables etc. initialised including initialising an estimate-madeflag, indicating whether or not a first estimate at the device'sposition has yet been made, to an unset state, initialising afirst-average-calculate flag, which indicates whether the first“average” error has still to be calculated, to a set state andinitialising the number of iterations of the procedure to zero and aNo-of-guesses variable (whose purpose becomes clear from the followingdescription) to zero. With these initialisations made, the procedure cancommence with flow passing from the start of the flow chart to step S5in which the device gets and stores positional information (if any isavailable) received from neighbouring nodes which are withincommunication range of the specified device. Note that to render thedescription of the procedure as clear as possible, the procedure willhenceforth be described from the point of view of a single devicehereinafter referred to, where necessary for the sake of clarity, as thepresent device.

The positional information is broadcast between the nodes using alimited range radio communication, the precise details of which are notrelevant to the present invention and will not therefore be discussedhere in detail. As will be apparent to a person skilled in the art, thecommunications between the devices can be carried out in a number ofwell known manners. ‘Ad Hoc networking’, Charles E. Perkins, Pub. AdisonWesley, December 2001 and the references cited therein provide adetailed description of some suitable such methods.

Upon completion of step S5, flow passes to step S10 in which the presentdevice gets and stores distance information (ie the measured distancebetween the present device and each neighbouring node withincommunication range).

As with methods of broadcasting information between nodes, there aremany well known methods of determining the distance from one device toanother which are suitable for use within an ad hoc network. Forexample, the Radio Acoustic Ranging (RAR) method or a similar methodbased on detecting the difference in time taken for a sound wave versusa radio wave to travel the distance to be measured (or a known multiplethereof). would be appropriate. Implementations of these method are wellknown and will not be discussed here in detail since they are notgermane to the present invention. Chapter 6 of ‘Hydrographic Manual’ byCommander K. T. Adams, Special publication of US dept. of commerce,Coast and geodetic survey published by US Govt. printing office, 1942and the references cited therein provide a detailed description of RAR.

Upon completion of step S10, flow passes to step S15 in which it isdetermined whether or not a previous estimate of the present device'sposition has been made during an earlier iteration of the procedure. Inthe present embodiment, this is determined by seeing if theestimate-made flag is unset or set. If the flag is still unset, flowpasses to step S20 where it is determined if the device has sufficientinformation to make a first estimate of its position.

To do this, in the present embodiment, it needs to know the actual orestimated position of, and measured distance to, at least oneneighbouring node (henceforth the term “neighbouring node” will be usedto refer to a node which is within communication range). If thisinformation is known an estimate of the device's position will be madebased on the information. If it has this information in respect of morethan one neighbouring node, it will base its estimate on the informationof the highest priority node (with “a priori” nodes having highestpriority or otherwise the closest random node).

As an example, on the first iteration, node r1 (together with all of theother nodes within range of the “a priori” node a1) will receive thenecessary information only from “a priori” node a1, since none of itsother neighbours (eg node r2) will yet have had a chance to estimatetheir position. Thus node r1 will estimate its position as beinganywhere on the circle whose centre is given by the broadcast positionof the “a priori” node a1, and whose radius is equal to the measureddistance (as measured by device r1) between device r1 and “a priori”node a1. To specify a particular position, the device chooses a randomnumber between 0 and 2π and uses this to set an angle with the directionalong the x-axis in the positive direction corresponding to zero(radians), for example. By contrast, random node r9 is not within rangeof any “a priori” nodes and thus on the first iteration will not haveany information on which to estimate its location. However, by thesecond iteration its random node neighbours (r5, r7 and r8) will allhave formed an estimate of their position (based on node a1) and willhave broadcast this to node r9. Since random node r8 is the closest ofthese three, the estimated position from this node, and the measureddistance therefrom, is used to form an estimate of the position of noder9 (again by choosing a random angle between 0 and 2π radians and usingthis to select a position on the circle centred on the estimatedbroadcast position of node r8 and having radius equal to the measureddistance—as determined by node r9—between nodes r9 and r8).

If at step S20 it is determined that there is insufficient informationto form an estimate of its location, the iteration is ended and flow isreturned back to step S5 where the variable storing the number ofiterations of the procedure is incremented and a predetermined time isallowed to elapse before performing a further iteration. Note thatwhenever an iteration comes to an end and the flow is passed back tostep S5 to await the commencement of a new iteration, the variablestoring the number of iterations of the procedure is incremented and apredetermined time is allowed to elapse before performing the nextiteration.

If at step S20 it is determined that there is sufficient informationavailable to make a first estimate, then flow is passed to step S25where a first estimate is made in the manner described above (ie usingthe highest priority neighbouring node's broadcast position and themeasured distance to the neighbouring node and randomly choosing a pointon the appropriate circle), and the estimate-made flag is set. Then thecurrent iteration is ended and flow is returned to step S5.

If at step S15 it is determined that the estimate-made flag is set, thenthe flow is passed to step S30, in which the perceived error, E, for theestimated position determined by the present device in the previousiteration is calculated. This error is calculated on the basis of themost recently broadcast positions of the present device's neighbouringnodes and the measured distances from the present device to eachneighbouring node using, in the present example, the following equation:$E = {\sum\limits_{{All\_ Neighbouring}{\_ Nodes}}\quad\left( {{md} - {hd}} \right)^{2}}$where md is the measured distance between the present device and a givenneighbouring node, and hd is the hypothetical distance between thepresent device and the given node.

Upon completion of step S30, flow passes to step S35 in which it isdetermined whether or not an “Average” Error has yet been calculated. Inthe present embodiment, this is done by examining thefirst-average-calculate flag to see if it is set or unset. If the flagis set (indicating that the first calculation of an “Average” Error isyet to be performed), then flow is passed to step S40.

In step S40, the “Average” Error is set to equal the value calculatedfor the perceived Error, E, calculated in step S30, thefirst-average-calculate flag is unset and flow is passed to step S50.

If in step S35 it is determined that an “Average” Error has previouslybeen calculated then flow is passed to Step S45 where the “Average”Error is up-dated. This is done using the formula “Average”Error=(“Average” Error+perceived error E)/2.

Upon completion of step S45, flow is passed to step S50 in which it isdetermined if the newly calculated perceived error, E, is greater thanthe newly calculated “Average” Error. If it is not, it is deemed to beindicative of a general trend towards an improved estimated position andflow is passed to step S55.

In step S55, a new estimated position is calculated which has a reducedperceived error. In the present embodiment, this is done in thefollowing manner:

Firstly, the gradient of the perceived error is calculated (ie ∇E iscalculated) at the current estimated position of the present device todetermine the direction in which the perceived error falls most quickly.A first trial position is then selected along the line extending fromthe current estimated position of the present device, the distance fromthe current estimated position of the trial position being givenaccording to a predetermined formula which in the present embodiment isgiven by:TRIAL_POS=Const.|∇E|Where Const is a predetermined constant which is set in dependence uponthe particular geometry of the ad hoc network arrangement and in thepresent example is set to a value of sixteen distance units. Each nodenow has stored 2 values of E at either end of the line of Del(E). Aniterative procedure is then followed which comprises the followingsteps: pick another point on the line of Del(E) halfway between theprevious points and calculate the perceived error, E, at that point;discard the highest value error point (one end) and repeat. In thepresent example, this iterative procedure is followed for a total of 10times. The procedure is, in essence, a Newtonian approximation which isknown to quickly home in on a minimum value in certain circumstances(where there are not lots of local minima). It is used in the presentexample because the error function, E, generally doesn't have a hugenumber of local minima along a line of Del(E). It is possible that theapproximation will find a local minima along the line rather than theglobal minimum, but it is unlikely, and if it does the procedure stillfunctions adequately. Also as part of this step, the No-of-guessesvariable is incremented by one.

Upon completing step S55, the current iteration is ended and flow ispassed back to step S5.

If at step S50 it is determined that the perceived error is greater thanthe “Average” Error, this is taken as a sign that the present device maybe stuck in a local minimum of the perceived error, E, which is actuallysome distance removed from the actual position of the present device. Asa result, flow is passed to subroutine S60 at which it is determinedwhether or not the present device should perform a reset, hold itscurrent estimated position or generate a new estimated position in thenormal way (ie via step S55). The steps performed within subroutine S60are described in greater detail below with reference to FIG. 12.

Upon completion of subroutine S60, flow proceeds to step S65 in which itis determined whether subroutine S60 decided that a “reset” shouldoccur. If it was not decided to reset, flow proceeds to step S70 inwhich it is determined whether subroutine S60 decided that a “hold”should occur. If it was determined that a “hold” should occur, then theiteration is ended and flow returns to step S5. If it is determined instep S60 that a hold should not occur, then flow proceeds to step S55 inwhich a new estimate is formed in the manner described above.

If at step S65 it is determined that a “reset” is to occur, flowproceeds to step S75. In step S75 a new estimate of the position of thepresent device is made according to the following procedure, in thepresent example: one of the neighbouring nodes is selected and the newestimate is set to be at a position the same distance from the selectednode but on the opposite side (ie the new estimated position is arotation about the selected neighbouring node of π radians from theformer estimated position). Additionally in this step, the No-of-guessesvariable is reset to zero.

Upon completion of step S75, the current iteration is ended and flowreturns to step S5.

Referring now to FIG. 12, at the commencement of the subroutine S60,flow passes to step S105 in which the current value of the perceivederror, E, is compared with a predetermined threshold, E_(THRESH), which,in the present example, is set to equal four times the number ofneighbouring nodes to the present device. Note that optimally thethreshold for perceived error is dependent on the level of expectednoise (more noise, higher threshold). It has been found that for anapproximate expected noise of 5%, a threshold of 1×(# of neighbouringnodes) works well whereas for 10% noise (which corresponds approximatelyto the amount of simulated noise used in the present example), athreshold of 4×(# neighbouring nodes) was found to work well. Note that10% noise can be taken to mean that where the noise is approximatelyGaussian, the vast majority of measured distances are within 10% of theactual distance which is trying to be measured. Note that it has beendetermined that the multiplication factor (1 in the case of 5% noise, 4in the case of 10% noise) should optimally vary as the square of theexpected percentage error in the system (i.e. doubling error raises thethreshold by 4×).

If it is determined in step S105 that E is below the thresholdE_(THRESH), then flow proceeds to step S110 in which the resultingdecision of the subroutine is set to indicate not to reset and not tohold and flow proceeds to the end of the subroutine.

The significance of this test is that if the perceived error is very lowit is likely that the present device's current estimated position is inapproximately the correct area and a reset would be likely to send theestimated position into the wrong area and therefore should be avoided.

If at step S105 it is determined that E is greater than E_(THRESH), thenflow passes to step S115.

At step S115 it is determined whether the value stored in theNo-of-guesses variable, NO_OF_GUESSES, is below a threshold,NO_OF_GUESSES_(THRESH), which, in the present example procedure is setto 20. If it is determined that NO_OF_GUESSES is below the threshold,NO_OF_GUESSES_(THRESH), then flow proceeds to step S120 in which theresulting decision of the subroutine is set to indicate not to reset andnot to hold and flow proceeds to the end of the subroutine.

The significance of this test is that if the number of guesses since thelast reset (when the No-of-guesses variable is reset) is very low it islikely that the system is unstable and therefore it would be beneficialto allow the system to settle down a bit before attempting anotherreset. Additionally, immediately after doing a reset, it is likely thatthe perceived error will be much higher than before the reset. A fewiterations should be permitted during which the estimated error shouldrapidly reduce as the estimated position moves towards a (hopefully) newminimum value.

If at step S115 it is determined that NO_OF_GUESSES is greater thanNO_OF_GUESSES_(THRESH), then flow passes to step S125. At step S125 itis determined whether the value stored in a variable,ITS_SINCE_NEIGH_RESET, which stores the number of iterations elapsedsince one of the present device's neighbours last reset, is below athreshold value, ITS_SINCE_NEIGH_RESETT_(THRESH), which, in the presentexample procedure is set to 1 (note it has been found that thisthreshold value should be kept low, but above zero, for the procedure torun well, preferably between 1 and 5). If it is determined that thenumber of iterations since a neighbour last reset is below the thresholdvalue, then flow proceeds to step S130 in which the resulting decisionof the subroutine is set to indicate not to reset but instead to holdand flow proceeds to the end of the subroutine.

The significance of this test is that if a neighbour has recently reset,it is likely that the recently reset neighbour does not have an accurateestimate of its position. As a result, it is useful to give the recentlyreset neighbouring node an opportunity to move towards a minimum in theperceived error function (and hence hopefully to a position which iscloser to its actual position) before attempting to adjust the positionof the present device on the basis of the error function which is likelyto be heavily influenced by the recently reset node causing a largeincrease in the perceived error determined by the present device.

If at step S125 it is determined that the number of iterations since aneighbouring node last reset is greater than the threshold amount, thenflow passes to step S135.

In step S135, a random number is chosen (using a simple random numbergenerator such as is commonly available on microprocessors) to liebetween zero and a predetermined maximum value, MAX, the value of whichdepends upon the average distance between nodes in the network. In thepresent example, the maximum value is calculated according to thefollowing formula:MAX=RANGE²÷2500

In the simulated example, the average distance between nodes in thenetwork is approximately 50 distance units and so RANGE was set to 50giving a value for MAX of 1. Having selected a random number betweenzero and MAX, flow passes to step S140 in which it is determined, in thepresent example, whether the chosen random number is less than the“Average” error divided by the number of guesses since the presentdevice was last reset (ie NO_OF_GUESSES) (note an alternative examplecould use some more complicated function of this ratio instead).

If the determination in step S140 is that the random number is not lessthan the “Average” error over NO_OF_GUESSES ratio, flow passes to stepS145 in which the resulting decision of the subroutine is set toindicate not to reset but instead to hold and flow proceeds to the endof the subroutine. Otherwise, flow passes to step S150 in which theresulting decision of the subroutine is set to indicate to reset andflow proceeds to the end of the subroutine.

Note that the random number chosen in step S135 varies between 0 and 1while the ratio of “Average” error over NO_OF_GUESSES varies potentiallybetween 0 and a high number (ie much higher than 1). The significance ofthis is that when error is high, the present device will always reset,and this is desirable since high error is considered to be an indicationof the present device failing to find a reasonable solution. It shouldalso be noted that no reset will be made if the NO_OF_GUESSES is lessthan 20 since the subroutine would have terminated with a decision notto reset or hold after step S115.

Stated somewhat loosely, the overall effect of subroutine S60 is that ifthings are wrong then the present device will always reset, if given thechance (ie if the conditions specified in steps S105, S115 and S125 aresatisfied such that flow proceeds to steps S135 and S140), if things areright the present device will never reset and if things are nearly rightthen the present device has a chance of resetting.

FIGS. 13 and 14 illustrate the way in which the perceived errorfunction, E, varies with position, by way of a contour map in FIG. 13and a perspective view of a three-dimensional representation of thecontour map in FIG. 14. The arrangement of nodes on which the contourmap is based is one where the node who's contour map is drawn isactually located at x=200, y=200 and it can communicate with 3 othernodes at (0,0), (200,0) and (0,200). The node at (0,0) is an “a priori”node that knows its location at all times, the other 2 are random nodeswhich have guessed their locations (incorrectly) to be (150,30) and(75,162) respectively. From this the node who's contour map is shownwill optimally guess a location which is in the region of lowest error(in the region around x=250, y=175). Depending on the exact type ofprocedure followed for arriving at the minimum, it can be seen thatafter a few iterations the guessed position would coincide with thisglobal minimum.

Note that because the random neighbouring nodes have incorrectly guessedtheir positions, the global minimum does not quite coincide with thenode's exact correct position. However, it is expected that theneighbouring random nodes will improve their guesses of their locationin subsequent iterations and in doing so, the global minimum will movetowards the correct position.

Referring now to FIG. 15, it was mentioned above that in the simulationdescribed above in relation to FIGS. 1 to 4, a certain amount of noise(approximately 10%) in the measured distances was simulated. In theabove described simulation, the noise was generated using the followingfunction:md=md _(true) ×RR=(rand+rand+rand+rand)/20+0.9where rand is a random number chosen from a uniform distribution betweenzero and one. Thus R is a random number between 0.9 and 1.1 having adistribution which is approximately Gaussian. FIG. 7 illustrates a plotof 100,000 values of R chosen using the above formula. In an alternativesimulation in which a random number generator function having a Gaussiandistribution was available, this could be used instead, with perhaps avariance of 10% of the mean instead of maximum and minimum values ofplus and minus 10% of the mean respectively.

FIG. 16 shows the results of performing a large number of simulationswith differing numbers of random nodes and in many differentarrangements (all with the “a priori” nodes arranged in the same gridstructure as shown in FIGS. 9 and 10 but with different numbers andrandom arrangements of the random nodes) all with zero noise on themeasured distances. It can be seen that with only 75 random nodes, theperformance is very variable with, on average, just under half of therandom nodes being able to successfully locate themselves, with a bestresult of just under 80% of nodes locating themselves successfully and aworst result of just over 10% locating themselves correctly. However,with 100 random nodes, the worst case is just under half of the nodessuccessfully locating themselves and the best case is exactly 90% withan average of just over 70%. At 125 random nodes (as in the exampledescribed in detail above with reference to FIGS. 9 to 12), the worstcase is just over 70%, average is approximately 85% and best case isover 90%. Thereafter improvement is slower with increasing numbers ofnodes until at 200 random nodes the worst case is about 95%, the averageis just under 100% and the best result is 100% of random nodes correctlylocating themselves.

FIG. 17 illustrates the effects of adding noise to the measureddistances. It can be seen that adding noise has a detrimental effect onthe ability of the nodes to successfully locate themselves. However,there is only a small detrimental effect on the ability of the nodes tolocate themselves to within 10 distance units of their correctlocations. Given that the whole grid has a size of 400 by 400 distanceunits (ie the “a priori” nodes are spaced 100 distance units apart) thisillustrates that the reduced performance caused by noise on the measureddistances is not great. In fact, from the Figure, it can be seen thateven with 10% noise on the average percentage of nodes able to locatethemselves within 10 distance units of their actual position is onlyabout 5% less than the average percentage of nodes able to correctlylocate themselves when there is no noise.

Variations

In an alternative preferred embodiment, each unit or node other than the“a priori” nodes maintains performs the above described method inrespect of three different parallel estimated positions. This enables alevel of confidence or estimated maximum error to be calculated whenevera definitive position estimate is required (eg for position-stampingdata in the case of sensor devices such as that shown in FIG. 8).

As an example of this variation, consider each (non-a priori) nodestoring three different estimated positions in parallel. This thenrequires each node to store three sets of each of the followingvariables:

-   x, y, HAVE_RESET?, NO_OF_GUESSES, E, “Average” Error, and ITS_SINCE    NEIGH_RESET.

This is conveniently done by making each of these variables an arrayhaving three variables each, each of which is accessible by means of anindex, ie array x=x₁, x₂, x₃; etc.

When a device is required to generate a single position estimate,(x_bar, y_bar), from its array of different x and y positions, this isdone, in this alternative embodiment, according to the followingformula:x _(—) bar=(x ₁ +x ₂ +x ₃)/3; y _(—) bar=(y ₁ +y ₂ +y ₃)Furthermore, each device is also able to calculate a confidence level orestimated maximum error. In this alternative embodiment, this is doneaccording to the following formula:Est _(—) max _(—) Error=((Max x−Min x)+(Max y−Min y))/2where Max x is the largest of x₁, x₂ and x₃, and Min x is the smallestof these, etc.

Simulations have shown that for an extremely low density of nodes, theactual error is less than or equal to Est_max_Error about 90% of thetime, for densities 50% higher than this, the probability rises tosomething like 98%. That means that 98% of nodes with a determinedEst_max_Error less than 5 units have a real error less than or equal to5 units, similarly about 98% of nodes with a determined Est_max_Errorless than 10 units have a real error of less than 10 units and so on. Insome circumstances, it is useful to provide a “normalised”Est_max_Error. This can be done by dividing Est_max_Error by thecommunications range of each device. Note that the term “extremely lowdensity” of nodes referred to above, on which a probability of theEst_max_Error being greater than or equal to the actual error of 90% wasfound in simulations, refers to a density of 100 position determiningnodes each with range 50 units randomly distributed onto a square gridof side 400 units; whilst “50% higher than this” density refers to 150position determining nodes with the same range of 50 units on the samegrid of size 400 units. For both of these cases, there were 16position-aware a priori nodes distributed in a square-packed formation(as shown in FIG. 9).

As an indication of density in general, one may use an approximation ofdensity, ρ, along the following lines:ρ=N·π(R _(COM))² /A _(GRID)where N is the total number of nodes, R_(COM) is the communicationsrange of each node, and A_(GRID) is the total grid area. Using thisformula, an “extremely low density” corresponds to a ρ of 5.7, whilst“50% higher than this” corresponds to a ρ of 8.1.

The term approximate density is used because this number for ρapproximates to the average number of connections a node will have. Theapproximation improves as the grid becomes larger relative to thecommunications range of each device, such that in the limit of the gridbeing infinitely larger than the range the approximation becomes exact.However, the edge effects of the grid in a real case mean that each nodehas, on average, fewer connections than the numbers quoted above.

In order to use this method of location in the case of devices which areable to move, the most important modification is to ensure that in theevent of a change in the number of neighbours of a device, that thedevice does not immediately reset, thus giving the system a small timeto settle down before taking drastic action (ie resetting). In order todo this, each device stores a further variable (note that this is onevariable which does not need to be stored as an array of variables inthe case that each device is manipulating a plurality of estimatedpositions in parallel, see above) which records the number of neighbourswhich it has (ie the number of devices with which the device is able tocommunicate directly, ie within its communications range). If it detectsthat this number changes from one iteration to the next, then itsuppresses any decision to reset for a predetermined number ofiterations.

The method of storing a single variable which simply stores the numberof neighbours detected is an efficient solution. However, it does leaveopen the possibility of one neighbour leaving and another joiningbetween detections which would not therefore result in a change in thenumber of neighbours and thus would not, in this embodiment, trigger aninhibition of the reset. It is considered that the number of times inwhich this would occur are so small that it would not significantlyalter the performance of the method as a whole. Nonetheless, to avoidthis problem an alternative embodiment could record not only the numberof neighbouring nodes but also the identities of these nodes. The methodcould then act to inhibit a reset occurring in the event of any changein the group of neighbouring nodes be it a change in the number of nodesor simply a change in the identities of the nodes. In alternativeembodiment, the reset procedure is inhibited only in the event of a newneighbouring node being detected and not when a former node moves out ofrange of the device, however, this arrangement is not preferred as anychange in the constitution of the group of neighbouring nodes is likelyto lead to instability which is best handled by causing the device tohold its current estimated location for at least one iteration.

In simulations it has been discovered that a suppression for oneiteration is preferred. In cases where the predetermined number ofiterations for suppressing resetting in the event of a change in thenumber of neighbours equals the predetermined number of iterations forsuppressing resetting in the event of a neighbour resetting, the samemechanism can be used for enforcing both requirements by setting theITS_SINCE_NEIGH_RESET to 0 in the event either of detecting a neighbourresetting or detecting a change in the number of neighbours. Note inthis way a suppression of a reset for either reset by a neighbour or achange in the number of neighbours will preferably result in a “hold”decision being taken which avoids a new estimated position from beingcalculated and broadcast.

In the above described method with reference to FIGS. 11 and 12, it isclear that a two stage method is being adopted. The first stagegenerates a very approximate position estimate based on the measureddistance from a single neighbour who has broadcast an estimatedposition. The second stage is then a sophisticated iterative procedurewhich results in all of the devices' position estimates typicallyimproving significantly. This two stage procedure could advantageouslybe modified by replacing the initial stage by a more sophisticatedprocedure and/or one better suited to the particular system set-up inwhich the method is to be employed. For example, where devices havefairly accurate mechanisms for determining the distance between twodevices which are within range of one another, the locating methoddescribed with reference to FIGS. 1 to 8 may be used to obtain initialposition estimates and then once each device has obtained a singleposition estimate (or after a default number of iterations in which thedevice has been unable to reduce its number of position estimates), thedevice enters the second stage of position estimation improvement. Thiscould be achieved, for example, by replacing step S15 in FIG. 11 with amore generic decision step of “has first stage been completed?” andsteps S20 and S25 with steps for performing the first stage anddetermining when the first stage is deemed to have come to an end.

An alternative method for performing the first stage approximateposition estimation would be the first stage method described in thepapers by Savarese C et al. referred to in the introduction, in whicheach device determines how many hops away it is from its three (or fourin three dimensional cases) nearest anchor or a priori nodes, estimatesthe average distance associated with each hop and triangulates to findan estimated position on the basis of its hop distance from these anchornodes and the average length of each hop.

One further possible first stage method is similar to that mentionedabove (the Savarese first stage method). In this method, each devicedetermines how many hops it is away from at least two of its closest apriori nodes as is done in the Savarese method, and then it determinesin respect of each of two (or three in the case of a three dimensionalarrangement) orthogonal, or at least non-parallel (or non-planar inthree dimensional arrangements) axes, the maximum distance intervalalong each axis which the present device could be located on the basisof the number of hops removed from the respective a priori node,assuming a maximum distance of the communications range, R_(COM), ineach direction away from the a priori node. The intervals formed in thisway from different a priori nodes should overlap to generate a smallerinterval within which the present device will be located along thatparticular axis. The two (or three in the case of three dimensionalarrangements) intervals along different axes can then be used to form asquare, or parallelogram for non-orthogonal axes, (or a cube orparallelepiped in three dimensional arrangements) within which thepresent device theoretically must be located. The first positionestimate can then be chosen either to be the centre of this theoreticalregion within which the device must be located, or alternatively anyposition within the theoretical region may be selected at random. Usinga random selection has the advantage that it is unlikely that any twodevices will select the same initial estimated position even if they arein the “same position” in terms of the minimum number of hops to each ofthe closest a priori nodes.

As should be clear from the above discussion, all of the above describedmethods of the various different envisaged embodiments could be appliedequally well to either a two-dimensional arrangement (eg sensorsfloating on a lake, sea, ocean etc.) or a three dimensional arrangement(eg sensors in a volcano, employee identification tags within abuilding, etc.), provided that the obvious extensions to threedimensions are carried out (eg position is stored as a triplet of x, yand z coordinates, etc.).

An alternative method might utilise information from more distant nodesthan just the nearest neighbour nodes. This information could beobtained by having all nodes periodically broadcast information aboutthe position of their nearest neighbours in addition to informationabout their own position or estimated position. This information couldperhaps be used to encourage a reset where a node cannot communicatewith a node which has located itself in a position which should be incommunication range if the node was where it currently estimated itselfto be (ie the node can attempt to reset to a position further away fromthe next-nearest neighbour). APPENDIX node 1 possn is 275, 76 (fixed‘gps’ node) node 2 possn is 118, 285 (fixed ‘gps’ node) node 3 possn is88, 308 (fixed ‘gps’ node) node 4 possn is 127, 64 node 5 possn is 148,170 node 6 possn is 32, 189 node 7 possn is 28, 336 node 8 possn is 23,117 node 9 possn is 366, 147 node 10 possn is 309, 131 node 11 possn is287, 122 node 12 possn is 65, 131 total # of nodes visible to node 4 is4 (they are nodes 1, 5, 8 & 12) total # of nodes visible to node 5 is 6(they are nodes 11, 4, 12, 8, 6 & 2) total # of nodes visible to node 6is 6 (they are nodes 8, 7, 2, 3, 5 & 12) total # of nodes visible tonode 7 is 3 (they are nodes 2, 3 & 6) total # of nodes visible to node 8is 4 (they are nodes 6, 5, 12 & 4) total # of nodes visible to node 9 is3 (they are nodes 1, 10 & 11) total # of nodes visible to node 10 is 3(they are nodes 1, 9, 11) total # of nodes visible to node 11 is 4 (theyare nodes 5, 1, 10 & 9) total # of nodes visible to node 12 is 4 (theyare nodes 4, 8, 6 & 5) First round of location determination: node 6locating . . . from nodes 2 & 3 node 6 located at either: x = 32, y =189 or x = 188, y = 393 node 7 locating . . . from nodes 2 & 3 node 7located at either: x = 28, y = 336 or x = 45, y = 359 UPDATING . . .Node 1 already fixed near x = 275, y = 76 Node 2 already fixed near x =118, y = 285 Node 3 already fixed near x = 88, y = 308 updating node 6s# of positions to 2 (32, 189; 188, 393) updating node 7s # of positionsto 2 (28, 336; 45, 359) Second round of location determination: node 5locating . . . from nodes 2 & 6 node 5 located at either: (posn 1(of 1)of node 2 and posn 1(of 2) node 6) x = 148, y = 170 or x = 0, y = 302from nodes 2 & 6 node 5 located at either: (posn 1(of 1) of node 2 andposn 2(of 2) node 6) x = 71, y = 394 or x = 237, y = 286 node 6 locating. . . from nodes 2 & 3 node 6 located at either: x = 32, y = 189 or x =188, y = 393 node 7 locating . . . from nodes 2 & 3 node 7 located ateither: x = 28, y = 336 or x = 45, y = 359 UPDATING . . . Node 1 alreadyfixed near x = 275, y = 76 Node 2 already fixed near x = 118, y = 285Node 3 already fixed near x = 88, y = 308 updating node 5s # ofpositions to 4 (148, 170; 0, 302; 71, 394; 237, 286) updating node 6s #of positions to 2 (32, 189; 188, 393) updating node 7s # of positions to2 (28, 336; 45, 359) located = 3, partial = 3 Third round of locationdetermination node 4 locating . . . from nodes 1 & 5 node 4 located ateither: (posn 1(of 1) of node 1 and posn 1(of 4) node 5) x = 127, y = 64or x = 243, y = 221 from nodes 1 & 5 node 4 located at either: (posn1(of 1) of node 1 and posn 4(of 4) node 5) x = 183, y = 192 or x = 320,y = 217 (for positions 2 & 3 of node 5 there are no intersections of thecircles and hence no possible solutions. This information will be passedto node 5 in the next round of communications) node 5 locating . . . (Asin previous round of location determination) from nodes 2 & 6 node 5located at either: x = 148, y = 170 or x = 0, y = 302 from nodes 2 & 6node 5 located at either: • x = 71, y = 394 or x = 237, y = 286 node 6locating . . . from nodes 2 & 3 node 6 located at either: x = 32, y =189 or x = 188, y = 393 node 7 locating . . . from nodes 2 & 3 node 7located at either: x = 28, y = 336 or x = 45, y = 359 node 8 locating .. . from nodes 5 & 6 node 8 located at either: (posn 1(of 4) of node 5and posn 1(of 2 node 6) x = 23, y = 117 or x = 46, y = 260 from nodes 5& 6 node 8 located at either: (posn 2(of 4) of node 5 and posn 1(of 2)of node 6) x = 101, y = 211 or x = 39, y = 172 from nodes 5 & 6 node 8located at either: (posn 3(of 4) of node 5 and posn 2(of 2) of node 6) x= 186, y = 466 or x =185, y = 320 from nodes 5 & 6 node 8 located ateither: (posn 4(of 4) of node 5 and posn 2(of 2) of node 6) x = 123, y =361 or x = 256, y = 420 (The combinations of positions 3 or 4 of node 5with position 2 of node 6 and positions 1 or 2 of node 5 with position 2of node 6 are incapable of producing solutions) node 11 locating . . .from nodes 1 & 5 node 11 located at either: (posn 1(of 1) of node 1 andposn 1(of 4) of node 5) x = 235, y = 51 or x = 287, y= 122 (positions2-4 of node 5 produce no solutions) node 12 locating . . . from nodes 5& 6 node 12 located at either: (posn 1( of 4) of node 5 and posn 1(of 2)of node 6) x = 65, y = 131 or x = 82, y = 233 from nodes 5 & 6 node 12located at either: (posn 2(of 4) of node 5 and posn 1(of 2) of node 6) x= 71, y = 243 or x = 29, y = 215 from nodes 5 & 6 node 12 located ateither: (posn 3(of 4) of node 5 and posn 2(of 2) of node 6) x = 147, y =445 or x = 146, y = 341 from nodes 5 & 6 node 12 located at either:(posn 4(of 4) of node 5 and posn 2(of 2) of node 6) x = 158, y = 333 orx = 253, y = 376 (As node 8) UPDATING . . . Node 1 already fixed near x= 275, y = 76 Node 2 already fixed near x = 118, y = 285 Node 3 alreadyfixed near x = 88, y = 308 updating node 4s # of positions to 4 (127,64; 243, 221; 183, 192; 320, 217) updating node 5s # of positions to 4(148, 170; 0, 302; 71, 394; 237, 286) updating node 6s # of positions to2 (32, 189; 188, 393) updating node 7s # of positions to 2 (28, 336; 45,359) updating node 8s # of positions to 8 (23, 117; 46, 260; 101, 211;−39, 172; 186, 466; 185, 320; 123, 361; 256, 420) updating node 11s # ofpositions to 2 (235, 51; 287, 122) updating node 12s # of positions to 8(65, 131; 82, 233; 71, 243; −29, 215; 147, 445; 146, 341; 158, 333; 253,376) located = 3, partial = 7 Fourth round of location determination:node 4 locating . . . from nodes 1 & 5 node 4 located at either: (posn1(of 1) of node 1 and posn 1(of 4) of node 5) x = 127; y = 64 or x =243, y = 221 from nodes 1 & 5 node 4 located at either: (posn 1(of 1) ofnode 1 and posn 4(of 4) of node 5) x = 183, y = 192 or x = 320, y = 217x = 243 y = 221 is inconsistent (& eliminated) x = 183 y = 192 isinconsistent (& eliminated) x = 320 y = 217 is inconsistent (&eliminated) node 5 locating . . . from nodes 2 & 6 node 5 located ateither: (posn 1(of 1) of node 2 and posn 1(of 2) of node 6) x = 148, y =170 or x = 0, y = 302 from nodes 2 & 6 node 5 located at either: (posn1(of 1) of node 2 and posn 2(of 2) of node 6) x = 71, y = 394 or x =237, y = 286 x = 0 y = 302 is inconsistent (& eliminated) x = 71 y = 394is inconsistent (& eliminated) x = 237 y = 286 is inconsistent (&eliminated) node 6 locating . . . from nodes 2 & 3 node 6 located ateither: x = 32, y = 189 or x = 188, y = 393 node 7 locating . . . fromnodes 2 & 3 node 7 located at either: x = 28, y = 336 or x = 45, y = 359node 8 locating . . . from nodes 4 & 6 node 8 located at either: (posn1(of 4) of node 4 and posn 1(of 2) of node 6) x = 23, y = 117 or x =104, y = 178 from nodes 4 & 6 node 8 located at either: (posn 2(of 4) ofnode 4 and posn 2(of 2) of node 6) x = 182, y = 321 or x = 235, y = 337from nodes 4 & 6 node 8 located at either: (posn 3(of 4) of node 4 andposn 1(of 2) of node 6) x = 81, y = 135 or x = 78, y = 245 x = 104 y =178 is inconsistent (& eliminated) x = 182 y = 321 is inconsistent (&eliminated) x = 235 y = 337 is inconsistent (& eliminated) x = 81 y =135 is inconsistent (& eliminated) x = 78 y = 245 is inconsistent (&eliminated)

(The choice to locate using nodes 4 & 6 here instead of nodes 5 & 6 aswas done in round 3 is purely arbitrary. In this case it is true thatthere are only 6 possible solutions to the combination of nodes 4 & 6(of which 5 are subsequently eliminated) as opposed to 8 for nodes 5 &6. However, there are 16 (N=2, M=4, 2NM=16) possible solutions to theequations produced by nodes 4 & 6 based on the information available tonode 8, the same number as is possible from nodes 5 & 6. It is only byattempting to solve these equations that node 8 is able to determinethat not all of the solutions are REAL (i.e. complex solutions are thosesolutions whereby the circles do not intersect). It is by luck ratherthan judgement that node 8 has chosen to initially find real solutionsto the equations created by nodes 4 & 6 (6 Real, complex solutions)rather than those from nodes 5 & 6 (8 Real, 8 complex), and then work toeliminate them. In any case, the result would be the same with nodes 4 &6 the 6 possible solutions have 5 eliminated, if the 8 possiblesolutions of nodes 5 & 6 were calculated, 7 would be eliminated leavingthe same solution.) node 9 locating . . . from nodes 1 & 11 node 9located at either: (posn 1(of 1) of node 1 and posn 1(of 2) of node 11)x = 234, y = −32 or x = 160, y = 88 from nodes 1 & 11 node 9 located ateither: (posn 1(of 1) of node 1 and posn 2(of 2) of node 11) x = 230, y= 182 or x = 366, y = 147 node 10 locating . . . from nodes 1 & 11 node10 located at either: (posn 1(of 1) of node 1 and posn 1(of 2) of node11) x = 232, y = 27 or x = 212, y = 60 from nodes 1 & 11 node 10 locatedat either: (posn 1(of 1) of node 1 and posn 2(of 2) of node 11) x = 272,y = 141 or x = 309, y = 131 node 11 locating . . . from nodes 1 & 5 node11 located at either: (posn 1(of 1) of node 1 and posn 1(of 4) of node5) x = 235, y = 51 or x = 287, y = 122 node 12 locating . . . from nodes4 & 6 node 12 located at either: (posn 1(of 4) of node 4 and posn 1(of2) of node 6) x = 65, y = 131 or x = 79, y = 142 from nodes 4 & 6 node12 located at either: (posn 3(of 4) of node 4 and posn 1(of 2) of node6) x = 95, y = 167 or x = 94, y = 214 x = 79 y = 142 is inconsistent x =95 y = 167 is inconsistent x = 94 y = 214 is inconsistent UPDATING . . .Node 1 already fixed near x = 275, y = 76 Node 2 already fixed near x =118, y = 285 Node 3 already fixed near x = 88, y = 308 updating node 4s# of positions to 1 Node 4 fixed near x = 127, y = 64 updating node 5s #of positions to 1 Node 5 fixed near x = 148, y = 170 updating node 6s #of positions to 2 (32, 189; 188, 393) updating node 7s # of positions to2 (28, 336; 45, 359) updating node 8s # of positions to 1 Node 8 fixednear x = 23, y = 117 updating node 9s # of positions to 4 (234, −32;160, 88; 230, 182; 366, 147) updating node 10s # of positions to 4 (232,27; 212, 60; 272, 141; 309, 131) updating node 11s # of positions to 2(235, 51; 287, 122) updating node 12s # of positions to 1 Node 12 fixednear x = 65, y = 131 located = 7, partial = 5 Fifth Round of locationdetermination: node 6 locating . . . from nodes 2 & 3 node 6 located ateither: x = 32, y = 189 or x = 188, y = 393 x = 188 y = 393 isinconsistent node 7 locating . . . from nodes 2 & 3 node 7 located ateither: x = 28; y = 336 or x = 45, y = 359 node 9 locating . . . fromnodes 1 & 11 node 9 located at either: x = 234, y = −32 or x = 160, y =88 from nodes 1 & 11 node 9 located at either: x = 230, y = 182 or x =366, y = 147 node 10 locating . . . from nodes 1 & 11 node 10 located ateither: x = 232, y = 27 or x = 212, y = 60 from nodes 1 & 11 node 10located at either: x = 272, y = 141 or x = 309, y = 131 node 11 locating. . . from nodes 1 & 5 node 11 located at either: x = 235, y = 51 or x =287, y = 122 UPDATING . . . Node 1 already fixed near x = 275, y = 76Node 2 already fixed near x = 118, y = 285 Node 3 already fixed near x =88, y = 308 Node 4 already fixed near x = 127, y = 64 Node 5 alreadyfixed near x = 148, y = 170 updating node 6s # of positions to 1 Node 6fixed near x = 32, y = 189 updating node 7s # of positions to 2 (28,336; 45, 359) Node 8 already fixed near x = 23, y = 117 updating node 9s# of positions to 4 (234, −32; 160, 88; 230, 182; 366, 147) updatingnode 10s # of positions to 4 (232, 27; 212, 60; 272, 141; 309, 131)updating node 11s # of positions to 2 (235, 51; 287, 122) Node 12already fixed near x = 65, y = 131 located = 8, partial = 4 Sixth Roundof location determination: node 7 locating . . . from nodes 2 & 3 node 7located at either: x = 28, y = 336 or x = 45, y = 359 x = 45 y = 359 isinconsistent node 9 locating . . . from nodes 1 & 11 node 9 located ateither: x = 234, y = −32 or x = 160, y = 88 from nodes 1 & 11 node 9located at either: x = 230, y = 182 or x = 366, y = 147 node 10 locating. . . from nodes 1 & 11 node 10 located at either: x = 232, y = 27 or x= 212, y = 60 from nodes 1 & 11 node 10 located at either: x = 272, y =141 or x = 309, y = 131 node 11 locating . . . from nodes 1 & 5 node 11located at either: x = 235, y = 51 or x = 287, y = 122 UPDATING . . .Node 1 already fixed near x = 275, y = 76 Node 2 already fixed near x =118, y = 285 Node 3 already fixed near x = 88, y = 308 Node 4 alreadyfixed near x = 127, y = 64 Node 5 already fixed near x = 148, y = 170Node 6 already fixed near x = 32, y = 189 updating node 7s # ofpositions to 1 Node 7 fixed near x = 28, y = 336 Node 8 already fixednear x = 23, y = 117 updating node 9s # of positions to 4 (234, −32;160, 88; 230, 182; 366, 147) updating node 10s # of positions to 4 (232,27; 212, 60; 272, 141; 309, 131) updating node 11s # of positions to 2(235, 51; 287, 122) Node 12 already fixed near x = 65, y = 131 located =9, partial = 3 No farther improvements possible.

1. A method of estimating the location of a device within a network ofdevices each of which forms a node of the network such that the devicemay communicate with any other node in the network either directly orindirectly via intermediate devices, the or each other device within thenetwork with which the device may communicate directly being referred toas a neighbouring node, the method including the steps of: obtaininginformation specifying the location or estimated location of one or moreof the neighbouring node or nodes; measuring the distance from thedevice to said one or more neighbouring nodes; iteratively modifying anestimated location of the device, so as to reduce an error functionbased on the inconsistency between the estimated location of the deviceand the location or estimated location of the or each of the one or moreneighbouring nodes, as determined from the obtained informationspecifying the location or estimated location of the one or moreneighbouring nodes, on the one hand and the measured distance ordistances from the device to the or each of the one or more neighbouringnodes on the other hand; and periodically determining whether or not toimplement a reset procedure, on the basis of whether or not certainconditions are met, by which the estimated location of the device isreset to a new location in a manner which does not seek to reduce theerror function in respect of the new location relative to theimmediately preceding estimated location of the device, whereby thedevice can avoid getting its estimated location stuck in a positioncorresponding to a local minimum value of the error function.
 2. Amethod as claimed in claim 1 wherein the error function depends on thesquare, or the sum of the squares, of the difference or differencesbetween the or each hypothetical distance from the device to the or eachneighbouring node on the one hand and the measured distance from thedevice to the or each respective neighbouring node on the other hand,where the hypothetical distance from the device to a neighbouring nodeis the distance between the estimated position of the device and thelocation or estimated location of the respective neighbouring node asobtained.
 3. A method as claimed in either preceding claim wherein thenetwork is a wireless ad-hoc network, and wherein the devicecommunicates with the or each of its neighbouring nodes in a wirelessmanner.
 4. A method as claimed in claim 1 wherein the network is amobile wireless ad-hoc network, and wherein the method includesmaintaining a record of the number of neighbouring nodes, that is nodeswith whom the device may communicate directly, and, in the event ofdetecting a change in the number of neighbouring nodes, inhibiting thereset procedure from occurring for a predetermined number of iterations.5. A method as claimed in claim 1 wherein the step of periodicallydetermining whether or not to implement a reset procedure includeschoosing whether or not to implement the reset procedure in apseudo-probabilistic manner such that the pseudo-probability ofimplementing the reset procedure is reduced as the ratio of the numberof iterations since a reset was last performed to the error function isincreased, at least beyond, between or before a certain minimum and/ormaximum value of this ratio.
 6. A method as claimed in claim 1, whereinthe reset procedure chooses a new location for the estimated position ofthe device according to the following steps: attempting to identify thetwo closest nodes to the device; and setting the new location to be themirror image location of the current estimated position of the devicereflected in the line joining the two nodes identified in the precedingstep.
 7. A carrier medium carrying a computer program comprisingprocessor implementable instructions for causing a device to carry outthe method of claim 1 during implementation of the instructions.
 8. Adevice for forming a node within a network of similar devices, thedevice including locating means for estimating its location, thelocating means including: obtaining means for obtaining informationspecifying the location or estimated location of one or moreneighbouring nodes; distance measurement means for measuring thedistance to said one or more neighbouring nodes; and processing meansfor iteratively modifying an estimated location of the device, such asto reduce the inconsistency between the estimated location of the deviceand the location or estimated location of the one or more neighbouringnodes, as determined from the obtained information specifying thelocation or estimated location of the one or more neighbouring nodes, onthe one hand and the measured distances to each of the one or moreneighbouring nodes on the other hand; said processing means furtherincluding means for determining whether or not to reset the estimatedlocation of the device if certain conditions are met to a locationdetermined according to a procedure which does not seek to reduceinconsistency in the current iteration, whereby the device can avoidgetting its estimated location stuck in a local minimum value ofinconsistency.
 9. A method of obtaining positional information aboutindividual wireless devices within a wireless ad-hoc network including aplurality of position determining devices in which each positiondetermining device includes means for estimating the distance betweenitself and any other similar device forming part of the network which iswithin range, devices which are in range of one another hereinafterbeing referred to as neighbouring devices, the method including thesteps of: i) each position determining device receiving a broadcastmessage from each of its neighbouring devices specifying, if known, therespective neighbouring device's position or estimated position; ii)each position determining device attempting to measure its distance fromeach of its neighbouring devices; iii) each position determining devicedetermining its actual position or an initial estimated position andstoring this information; iv) each position determining device whichdoes not know its actual position calculating the hypothetical distancebetween its estimated position and the position or estimated position ofeach neighbouring device whose broadcast position or estimated positionhas been received and whose distance from the respective node has beenmeasured in step ii); v) each position determining device which does notknow its actual position comparing the hypothetical distance calculatedin step iv) with the distance measured in step ii); vi) each positiondetermining device which does not know its actual position, evaluatingan error function which depends on the difference between thehypothetical and measured distances; vii) each position determiningdevice which does not know its actual position determining whether ornot to implement a reset procedure on the basis of whether or notcertain conditions are met, by which the estimated location of thedevice is reset to a new location in a manner which does not seek toreduce the error function in respect of the new location relative to thecurrent estimated location of the device, whereby the device can avoidgetting its estimated location stuck in a position corresponding to alocal minimum value of the error function; viii) each positiondetermining device which does not know its actual position modifying itsestimated position, in the event that it is determined to not implementa reset procedure in step vii), so as to reduce the error function; andix) each position determining device broadcasting to each other similardevice in range, if known, its actual position determined in step iii)or its modified estimated position determined in step vii) or viii).